home *** CD-ROM | disk | FTP | other *** search
- 1 REM MSD FILE PROTECTOR
- 2 REM ORIGINAL PROGRAM : COMPUTE APR 85
- 3 REM MODIFIED FOR MSD DISK DRIVE
- 5 PRINT"[147]":Q$=CHR$(13)
- 10 U$=" ":KB=198:SF=653:KL=203:NS=12
- 20 F1=4:F7=3:POKE53281,12:POKE53280,6
- 50 GOSUB1240:GOTO1080
- 60 PRINT#15,"U1";2;0;T;S:GOTO670
- 70 PRINT#15,"B-P 2 0":PRINT#15,"U2";2;0;T;S:GOTO670
- 80 T=PEEK(681):S=PEEK(682):RETURN
- 90 REM:::LOCK ALL FILES:::
- 100 PRINT"[147]"SPC(NS)"LOCK ALL FILES":PRINTU$:GOSUB660:T=18:S=1
- 110 P=2:GOSUB60
- 120 GET#2,A$:T1=ASC(A$+CHR$(0)):GET#2,A$:S1=ASC(A$+CHR$(0))
- 130 FORI=0TO7:PRINT#15,"B-P";2;P+32*I
- 140 GET#2,A$:A=ASC(A$+CHR$(0)):IFA=.THEN170
- 150 IFAAND64THEN170
- 160 PRINT#15,"B-P";2;P+32*I:PRINT#2,CHR$(AOR64);
- 170 NEXT:GOSUB70:IFETHENRETURN
- 180 PRINT"TRACK"T"SECTOR"S"IS LOCKED":T=T1:S=S1:IFTTHEN110
- 190 GOSUB730:GOSUB740:RETURN
- 200 REM:::READ DIRECTORY:::
- 210 H$=CHR$(18):PRINT"[147]HOLD [SHIFT] TO PAUSE
- 220 [159]15,8,15:[159]1,8,0,"$0"
- 221 [161]#1,A$:[161]#1,A$:BY[178]26
- 222 [161]#1,A$:[161]#1,A$
- 223 [161]#1,A$:BL[178][198](A$[170][199](0))
- 224 [161]#1,A$:BL[178]BL[170]256[172][198](A$[170][199](0))
- 225 N$[178]"":[129]K[178]1[164]BY
- 226 [139][194](SF)[167][146]SF,1,1
- 230 [161]#1,A$:[139]ST[179][177]0[137]234
- 231 N$[178]N$[170]A$:[130]
- 232 [153]BL;N$:BY[178]28
- 233 [139]ST[178]0[137]222
- 234 [153]BL;N$
- 235 [160]1:[160]15
- 280 [141]730:[141]740:[151]140,0:[142]
- 290 [143]:::INPUT NAME:::
- 300 [153]"[F1] EXIT [F7] DIRECTORY
- 310 PRINT"FILENAME? "CU$;:POKEKB,0:F$=""
- 320 KQ=PEEK(KL):GETA$:IFA$=""ANDKQ=64THEN320
- 330 IFKQ=F1ORKQ=F7THENPRINTCHR$(20):RETURN
- 340 IF A$=CHR$(20)ANDF$=""THEN320
- 350 IFA$=CHR$(13)ANDF$<>""THENPRINTCHR$(20):RETURN
- 360 IFA$=CHR$(13)ANDF$=""THEN320
- 370 IFA$=CHR$(20)THENPRINTCHR$(20)A$CU$;:F$=LEFT$(F$,LEN(F$)-1):GOTO320
- 380 PRINTCHR$(20)A$CU$;:F$=F$+A$:GOTO320
- 390 REM:::LOCK A FILE:::
- 400 PRINT"[147]";
- 405 PRINTSPC(NS)"LOCK A FILE":PRINTU$
- 410 GOSUB300:IFKQ=F1THENRETURN
- 420 IFKQ=F7THENGOSUB210:GOTO400
- 430 POKE679,1:GOSUB780:GOSUB660:T=18:S=1
- 440 GOSUB60:SYS828:A=PEEK(252):IFATHEN470
- 450 GOSUB80:IFTTHEN440
- 460 PRINT"FILE NOT FOUND[144]":GOTO410
- 470 IF(AAND64)THENPRINTF$:PRINT" IS ALREADY LOCKED":GOSUB730:GOSUB740:GOTO510
- 480 P=PEEK(255):GOSUB60:PRINT#15,"B-P";2;P:PRINT#2,CHR$(AOR64);
- 490 GOSUB70:IFETHEN400
- 500 GOSUB730:PRINTF$:PRINT"IS LOCKED":GOSUB740
- 510 POKE679,0:GOTO400
- 520 REM:::UNLOCK A FILE:::
- 530 PRINT"[147]";
- 535 PRINTSPC(NS)"UNLOCK A FILE":PRINTU$
- 540 GOSUB300:IFKQ=F1THENRETURN
- 550 IFKQ=F7THENGOSUB210:GOTO530
- 560 POKE679,1:GOSUB780:GOSUB660:T=18:S=1
- 570 GOSUB60:SYS828:A=PEEK(252):IFATHEN600
- 580 GOSUB80:IFTTHEN570
- 590 PRINT"FILE NOT FOUND[144]":GOTO540
- 600 IF(AAND64)=.THENPRINTF$Q$"IS ALREADY UNLOCKED":GOSUB730:GOSUB740:GOTO640
- 610 P=PEEK(255):GOSUB60:PRINT#15,"B-P";2;P:PRINT#2,CHR$(AAND135);
- 620 GOSUB70:IFETHEN530
- 630 GOSUB730:PRINTF$:PRINT"IS UNLOCKED":GOSUB740
- 640 POKE679,0:GOTO530
- 650 REM:::OPEN FILE:::
- 660 CLOSE2:CLOSE15:OPEN15,8,15,"I0":OPEN2,8,2,"#"
- 670 INPUT#15,E,EM$,ET,ES
- 680 IFE=73ORE=26THENGOSUB730:GOTO710
- 690 IFETHENPRINT"ERROR:":PRINTE","EM$","ET","ES"[144]":GOSUB730:END
- 700 RETURN
- 710 IFE=73THENPRINT"DISK IS WRITE PROTECTED*":GOSUB740:RETURN
- 720 PRINT"REMOVE WRITE PROTECT TAB":GOSUB740:RETURN
- 730 CLOSE2:CLOSE15:RETURN
- 740 PRINT"PRESS ANY KEY":POKEKB,0
- 750 KQ=PEEK(KL):GETA$:IFA$=""ANDKQ=64THEN750
- 760 RETURN
- 770 REM:::STORE NAME FOR ML:::
- 780 IFLEN(F$)<16THENF$=F$+CHR$(160):GOTO780
- 790 FORI=1TOLEN(F$):POKE683+I,ASC(MID$(F$,I,1)):NEXT:POKE700,0:RETURN
- 800 REM:::WRITE PROTECT* DISK:::
- 810 PRINT"[147]"SPC(NS)"WRITE PROTECT* DISK":PRINTU$
- 820 PRINT"INSERT DISK IN DRIVE [F1] TO ABORT":FORTD=1TO900:NEXT:GOSUB740
- 830 IFKQ=F1THENRETURN
- 840 GOSUB660:T=18:S=0:GOSUB60:PRINT#15,"B-P 2 2"
- 850 PRINT#2,CHR$(66);:PRINT#15,"B-P 2 166":PRINT#2,CHR$(66);:GOSUB70:IFETHEN810
- 860 GOSUB660:GOSUB730
- 870 PRINT"THE DISK IS NOW WRITE PROTECTED":GOSUB740:RETURN
- 880 REM:::SCRATCH A FILE:::
- 890 PRINT"[147]";
- 895 PRINTSPC(NS)"SCRATCH A FILE":PRINTU$
- 900 GOSUB300:IFKQ=F1THENRETURN
- 910 IFKQ=F7THENGOSUB210:GOTO890
- 920 INPUT"ARE YOU SURE";A$:IFA$<>"Y"THEN890
- 930 GOSUB660:PRINT#15,"S0:"+F$:INPUT#15,E,EM$,ET,ES:IFE>1THENGOSUB680:GOTO890
- 940 GOSUB730:IFET=.THENPRINT"FILE IS LOCKED OR NOT ON DISK[144]":GOSUB740:GOTO890
- 950 IFET>1THENPRINTET;EM$:GOSUB740:GOTO890
- 960 PRINTF$:PRINT"IS SCRATCHED":GOSUB740:GOTO890
- 970 REM:::UNLOCK A DISK:::
- 980 PRINT"[147]"SPC(NS)" REMOVE WRITE PROTECT*":PRINTU$
- 990 PRINT"INSERT DISK IN DRIVE [F1] TO ABORT":FORTD=1TO900:NEXT:GOSUB740
- 1000 IFKQ=F1THENRETURN
- 1010 GOSUB660:T=18:S=0:GOSUB60
- 1020 PRINT#15,"M-W";CHR$(136);CHR$(76);CHR$(1);CHR$(65);
- 1030 PRINT#15,"B-P 2 2":PRINT#2,CHR$(65);:PRINT#15,"B-P 2 166"
- 1040 PRINT#2,CHR$(65);:GOSUB70:IFETHEN980
- 1050 GOSUB660:GOSUB730:PRINT"DISK HAS WRITE PROTECT REMOVED"
- 1060 GOSUB740:RETURN
- 1070 REM:::MAIN MENU:::
- 1080 PRINT"[147][144]"SPC(NS-2)"<<FILE PROTECTOR>>"
- 1090 PRINT" 1) DIRECTORY
- 1100 [153]" 2) LOCK ALL FILES
- 1110 PRINT" 3) LOCK A FILE
- 1120 [153]" 4) UNLOCK A FILE
- 1130 PRINT" 5) WRITE PROTECT* DISK
- 1140 [153]" 6) REMOVE WRITE PROTECT*
- 1150 PRINT" 7) SCRATCH A FILE
- 1160 [153]" 8) QUIT
- 1165 PRINT" 9) INSTRUCTIONS AND WARNINGS[144]
- 1170 [153]" ENTER YOUR CHOICE"
- 1180 [161]A$:[139]A$[178]""[167]1180
- 1190 C[178][197](A$):[139]C[179]1[176]C[177]9[167]1180
- 1200 [145]C[141]210,100,400,530,810,980,890,1220,1500
- 1210 [137]1080
- 1220 [160]2:[160]15:[128]
- 1230 [143]:::VARIABLES & M/L:::
- 1240 [151]679,0:[151]140,0:CU$[178][199](31)[170][199](161)[170][199](144)
- 1250 [129]QZ[178]828[164]1006:[135]ZQ:[151]QZ,ZQ:[130]:[142]
- 1260 [131] 169,0,141,168,2,133,253,162,2,32,198,255,32
- 1270 [131] 228,255,141,169,2,32,228,255,141,170,2,230,253
- 1280 [131]230,253,32,228,255,133,252,165,253,133,255,32,228
- 1290 [131] 255,32,228,255,230,253,230,253,160,0,32,228,255
- 1300 [131] 230,253,153,189,2,200,24,192,16,144,242,160,243
- 1310 [131] 32,228,255,230,253,165,144,240,3,141,168,2,200
- 1320 [131] 208,241,165,252,208,7,173,168,2,208,22,240,191
- 1330 [131] 165,140,240,3,32,199,3,173,167,2,240,3,32
- 1340 [131] 175,3,173,168,2,240,171,32,204,255,96,160,0
- 1350 [131] 185,172,2,240,8,217,189,2,208,7,200,208,243
- 1360 [131] 238,168,2,96,169,0,133,252
- 1370 [131] 96,160,0,185,189,2,240,6,32,210,255,200,208
- 1380 [131] 245,165,252,41,64,240,10,169,144,32,210,255,169,60,32,210,255,169
- 1390 [131] 13,32,210,255,169,144,32,210,255,96
- 1500 [153]"LOAD"[166]NS[171]2)"<<FILE PROTECTOR>>"
- 1510 [153]" WARNINGSTOP : DO NOT USE THIS PROGRAM ON"
- 1515 [153]" COPY PROTECTED COMMERICAL SOFTWARE!!"
- 1520 [153]" NOTE1 : WHEN A FILE IS LOCKED IT"
- 1521 [153]" CAN NOT BE SCRATCHED, UNTIL IT IS "
- 1522 [153]" UNLOCKED. THE DIRECTORY INDICATES A"
- 1523 [153]" LOCKED FILE WITH A '<' SYMBOL.
- 1525 PRINT" NOTE2 : WRITE PROTECT* IS A SOFTWARE"
- 1526 PRINT" TYPE OF WRITE PROTECTION. AS WITH THE"
- 1527 PRINT" WRITE PROTECT TAB IT WILL PREVENT THE"
- 1528 PRINT" DISK BEING WRITTEN TO, FILES BEING"
- 1529 PRINT" SCRATCHED OR THE CLEARING OF DIRECTORY"
- 1530 PRINT" WITH A SHORT NEW IE. OPEN 15,8,15,"
- 1531 PRINT" 'N0:DISKNAME', BUT[144] WRITE PROTECT* WILL"
- 1532 PRINT"[160]NOT[144] PREVENT A FULL NEW - REFORMAT IE. "
- 1533 PRINT" OPEN15,8,15,'N0:DISKNAME,ID#' "
- 1570 GOSUB 740
- 1600 RETURN
-